Part Number Hot Search : 
PCA9536 UNHS200 T3331 FP5119PM MC74HC1 D90N0 BV55C MC33269
Product Description
Full Text Search
 

To Download ADNS-2051 Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  agilent ADNS-2051 optical mouse sensor data sheet features precise optical navigation tech- nology no mechanical moving parts complete 2d motion sensor serial interface and/or quadrature interface smooth surface navigation programmable frame speed up to 2300 frames per sec (fps) accurate motion up to 14 ips 800 cpi resolution high reliability high speed motion detector no precision optical alignment wave solderable single 5.0 volt power supply shutdown pin for usb suspend mode operation power conservation mode during times of no movement on chip led drive with regulated current serial port registers ?programming ?data transfer 16-pin staggered dual inline package (dip) applications mice for desktop pcs, workstations, and portable pcs trackballs integrated input devices description the ADNS-2051 is a low cost optical sensor used to implement a non-mechanical tracking engine for computer mice. it is based on optical navigation technology, which measures changes in position by optically acquiring sequential surface images (frames) and mathematically deter- mining the direction and magnitude of movement. the sensor is housed in a 16-pin staggered dual inline package (dip) that is designed for use with the hdns-2100 lens and hdns-2200 clip and hlmp-ed80-xxxxx (639 nm led illuminator source). there are no moving parts, and precision optical alignment is not required, facilitating high volume assembly. the output format is two channel quadrature (x and y direction) which emulates encoder photo- transistors. the current x and y information are also available in registers accessed via a serial port. default resolution is specified as 400 counts per inch (cpi), with rates of motion up to 14 inches per second (ips). resolution can also be pro- grammed to 800 cpi. the part is programmed via a two wire serial port, through registers. theory of operation the ADNS-2051 is based on optical navigation technology. it contains an image acquisition system (ias), a digital signal processor (dsp), a two-channel quadrature output, and a two wire serial port. the ias acquires microscopic surface images via the lens and illumination system provided by the hdns-2100, 2200, and hlmp-ed80-xxxxx led. these images are processed by the dsp to determine the direction and distance of motion. the dsp generates the ? x and ? y relative displacement values that are converted into two channel quadrature signals.
2 pinout pin pin description 1 sclk serial port clock (input) 2 xa xa quadrature output 3 xb xb quadrature output 4 yb yb quadrature output 5 ya ya quadrature output 6 xy_led led control 7 refa internal reference 8 refb internal reference 9 osc_in oscillator input 10 gnd system ground 11 osc_out oscillator output 12 gnd system ground 13 v dd 5.0 volt power supply 14 r_bin led current bin resistor 15 pd power down pin, active high 16 sdio serial data (input and output) figure 1. top view. outline drawing of ADNS-2051 optical mouse sensor a2051 xyywwz sclk 1 xa 2 xb 3 yb 4 ya 5 xy_led 6 refa 7 refb 8 sdio 16 pd 15 r_bin 14 v dd 13 gnd 12 osc_out 11 gnd 10 osc_in 9
3 figure 2. package outline drawing. protective kapton tape clear optical path gate location surface recessed by 0.3 mm groove 3.18 (0.125) 0.50 chamfer * 2.98 (0.117) * 0.01 (0.000) 9.10 (0.358) 13.57 0.45 (0.534 0.018) section a-a notes: 1. dimensions in millimeters (inches). 2. dimensional tolerance: 0.1 mm. 3. coplanarity of leads: 0.1 mm. 4. lead pitch tolerance: 0.15 mm. 5. cumulative pitch tolerance: 0.15 mm. 6. angular tolerance: 3.0 degrees. 7. maximum flash + 0.2 mm. 8. chamfer (25 degrees x 2) on the taper side of the lead. 9. * these dimensions are for references only and should not be used to mechanically reference the sensor. 0.99 (0.039) * 6.18 (0.243) 5 3 (at lead tip) 12.85 (0.506) (at shoulder) 0.25 (0.010) pin 1 22.30 (0.878) 2.54 (0.100) 1.26 (0.050) 0.50 (0.020) 0.25 (0.010) lead width (measured at base) 50 0.5 lead offset lead pitch 13.38 (0.527) 6.03 (0.237) aa 4.55 (0.179) 7.28 0.03 (0.287 0.001) 5.00 pin 1 ? ? 0.80 0.03 a2051 xyywwz 1.43 0.03 (0.056 0.001) 5.60 0.03 (0.220 0.001) 1.85 0.03 (0.073 0.001) * 0.06 (0.002) * 1.5 draft * 2.80 (0.110) 5.16 (0.203)
4 figure 3. recommended pcb mechanical cutouts and spacing (top view). figure 4. 2d assembly drawing of ADNS-2051 (top and side view). 2d assembly drawing of ADNS-2051 figures 3 and 4, shown with hdns-2100, hdns-2200, and hlmp-ed80-xxxxx. agilent technologies provides an iges file drawing describing the base plate molding features for lens and pcb alignment. the components interlock as they are mounted onto defined features on the base plate. the ADNS-2051 sensor is designed for mounting on a through hole pcb, looking down. there is an aperture stop and features on the package that align to the lens (see figure 3). the hdns-2100 lens provides optics for the imaging of the surface as well as illumination of the surface at the optimum angle. features on the lens align it to the sensor, base plate, and clip with the led. the lens also has a large round flange to provide a long creepage path for any esd events that occur at the opening of the base plate (see figure 4). the hdns-2200 clip holds the led in relation to the lens. the led must be inserted into the clip and the led? leads formed prior to loading on the pcb. the clip interlocks the sensor to the lens, and through the lens to the alignment features on the base plate. the hlmp-ed80-xxxxx led is recommended for illumination. if used with the bin table, sufficient illumination can be guaranteed. 13.88 (0.546) 39.39 (1.551) 1.22 (0.048) 7.50 (0.295) 5.10 (0.201) 12.60 (0.498) 1.28 (0.050) 11.38 (0.448) 30.32 (1.194) 1.27 (0.050) 2.32 (0.091) 40.53 (1.596) clear zone 0 ref. 0 ref. 3.50 (1.38) ? ? 0.80 (0.031) recommended (16 places) dimensions in millimeters (inches) overview of optical mouse sensor assembly 19.10 (0.752) 44.29 (1.744) esd lens ring base plate +x +y 13.82 (0.544) 14.58 (0.574) 10.58 (0.417) 7.45 (0.293) base plate alignment post sensor pcb clip plastic spring dimensions in millimeters (inches). top view side view
5 pcb assembly considerations 1. insert the sensor and all other electrical components into pcb. 2. bend the led leads 90 and then insert the led into the assembly clip until the snap feature locks the led base. 3. insert the led/clip assembly into pcb. 4. wave solder the entire as- sembly in a no-wash solder process utilizing solder fix- ture. the solder fixture is needed to protect the sensor during the solder process. the fixture should be de- signed to expose the sensor leads to solder while shield- ing the optical aperture from direct solder contact. the solder fixture is also used to set the reference height of the sensor to the pcb top during wave soldering (note: do not remove the kapton tape during wave soldering). 5. place the lens onto the base plate. 6. remove the protective kapton tape from optical aperture of the sensor. care must be taken to keep con- taminants from entering the aperture. it is recommended not to place the pcb facing up during the entire mouse assembly process. the pcb should be held vertically during the kapton removal process. 7. insert pcb assembly over the lens onto the base plate align- ing post to retain pcb assem- bly. the sensor aperture ring should self-align to the lens. 8. the optical position refer- ence for the pcb is set by the base plate and lens. note that the pcb motion due to button presses must be minimized to maintain optical alignment. 9. install mouse top case. there must be a feature in the top case to press down onto the clip to ensure all components are interlocked to the correct vertical height. figure 5. exploded view drawing. hdns-2200 (clip) hlmp-ed80-xxxxx (led) ADNS-2051 (sensor) customer supplied pcb hdns-2100 (lens) customer supplied base plate with recommended alignment features per iges drawing
6 figure 6. block diagram of ADNS-2051 optical mouse sensor. figure 7. pcb assembly. typical distance millimeters creepage 16.0 clearance 2.1 oscillator serial port led drive power on reset quadrature output voltage regulator and power control image processor sclk sdio xa xb ya yb r_bin xy_led serial port quadrature outputs led osc_in osc_out refa refb pd v dd gnd gnd resonator voltage reference 5 volt power clip led pcb sensor lens/light pipe base plate surface design considerations for improving esd performance the flange on the lens has been designed to increase the creepage and clearance distance for elec- trostatic discharge. the table on the right shows typical values assuming base plate construction per the agilent supplied iges file and hdns-2100 lens flange. for improved esd performance, the lens flange can be sealed (i.e. glued) to the base plate.note that the lens material is polycarbonate and therefore, cyanoacrylate- based adhesives or other adhesives that may damage the lens should not be used. the trimmed lens, hdns- 2100#001, is not recommended for corded applications due to the esd spec requirement.
7 figure 8. application using sdio pins. notes on bypass capacitors: caps for pins 7, 8 and 12, 13 must have trace lengths less than 5 mm. the 0.1 f caps must be ceramic. caps should have less than 5 nh of self inductance caps should have less than 0.2 ? esr surface mount parts are recommended. regulatory requirements passes fcc b and worldwide analogous emission limits when assembled into a mouse with unshielded cable and fol- lowing agilent recommenda- tions. passes en61000-4-4/iec801-4 eft tests when assembled into a mouse with unshielded cable and following agilent recom- mendations. ul flammability level ul94 v-0. provides sufficient esd creep- age/clearance distance to avoid discharge up to 15 kv when assembled into a mouse ac- cording to usage instructions above. for eye safety consideration, please refer to the technical report available on the web site, http://www.agilent.com the 15.0 k ? resistor is deter- mined by the absolute maxi- mum rating of 50 ma for the hlmp-ed80-xxxxx. the other resistor values for brighter bins will guarantee good signals with reduced power. recommended typical application using sdio pins gnd gnd 12 10 15 16 1 d+ 18 mhz 0.1 ? refb xy_led 6 r1 surface v dd v dd internal image sensor adns 2051 osc_in osc_out 9 11 ceramic resonator murata csals18m0x53-b0 tdk fcr18.0m2g v reg 8 p1.0 5 p1.1 14 xtalin 18 p0.4 p0.6 16 cypress cy7c63723a-pc p0.7 15 6 buttons p0.1 p0.5 17 2 4.7 ? 11 v dd 7 v pp gnd shld 0.1 ? refa hlmp-ed80 pd p0.3 4 sclk p0.2 3 v ss 13 r_bin 7 8 14 1 p0.0 l m r xtalout 2.2 ? 0.1 ? r1 value (k ? ) 15.0 15.0 15.0 15.0 15.0 15.0 ~ 18.0 15.0 ~ 22.0 15.0 ~ 27.0 15.0 ~ 33.0 15.0 ~ 37.0 led bin k l m n p q r s t u 2 xa 3 xb 4 yb 5 ya sdio d- r ? v dd v dd qb gnd qa d- 12 13 d+ z led 1.3 k ? hdns-2100 lens z-wheel encoder
8 figure 9. application using quadrature output pins. notes on bypass capacitors: caps for pins 7, 8 and 12, 13 must have trace lengths less than 5 mm. the 0.1 f caps must be ceramic. caps should have less than 5 nh of self inductance caps should have less than 0.2 ? esr surface mount parts are recommended. sdio and sclk pins should be grounded if not used. absolute maximum ratings parameter symbol min. max. units notes storage temperature t s ?0 85 ?c operating temperature t a ?5 55 ?c lead solder temperature 260 ?c for 10 seconds, 1.6 mm below seating plane. supply voltage v dd ?.5 5.5 v esd 2 kv all pins, human body model mil 883 method 3015 input voltage v in ?.5 v dd + 0.5 v pd, sdio, sclk, xa, xb, ya, yb, xy_led, r_bin input voltage v in ?.5 3.6 v osc_in, osc_out, ref_a alternative application using quadrature output pins gnd gnd 12 10 2 xa xb 3 yb 4 ya 5 16 d+ d 18 mhz 0.1 ? refb xy_led sdio 6 r1 surface v dd v dd internal image sensor ADNS-2051 osc_in osc_out 9 11 ceramic resonator avx kbr-18-00-msa murata csals18m0x55-b0 d+ 14 d 13 xtalin 10 11 v pp 2 p0.1 p0.2 xtalout 3 cypress cy7c63001a-pc p0.3 4 17 8 buttons panasonic evq series encoder z-wheel p1.0 p0.0 1 5 4.7 ? 12 v dd 9 cext 1.5 m ? gnd shld 6 mhz 0.33 ? refa hlmp-ed80-xxxxx pd 15 p1.1 16 sclk 1 p1.3 15 18 p0.6 p0.7 13 r_bin 7 8 14 6 p1.2 19 p0.5 20 p0.4 m r l v ss 7 2.2 ? 0.1 ? r1 value (k ? ) 15.0 15.0 15.0 15.0 15.0 15.0 ~ 18.0 15.0 ~ 22.0 15.0 ~ 27.0 15.0 ~ 33.0 15.0 ~ 37.0 led bin k l m n p q r s t u hdns-2100 lens 1.5 k ? 7.5 k ? d- resistor connection alternative d- resistor connection 3.3 v regulator lp2950ac z-3.3
9 recommended operating conditions parameter symbol min. typ. max. units notes operating temperature t a 040?c power supply voltage v dd 4.25 5.0 5.5 volts register values retained for voltage transients below 4.25 v but greater than 4 v. power supply rise time v rt 100 ms supply noise v n 100 mv peak to peak within 0-100 mhz. clock frequency f clk 17.4 18.0 18.7 mhz set by ceramic resonator. serial port clock frequency sclk f clk /4 mhz resonator impendance x res 55 ? distance from lens reference z 2.3 2.4 2.5 mm results in 0.2 mm dof. plane to surface (see figure 10.) speed s 0 14 i n/sec @ frame rate = 1500/second. acceleration a 0.15 g @ frame rate = 1500/second. light level onto ic irr inc 80 25,000 mw/m 2 = 639 nm 100 30,000 = 875 nm sdio read hold time t hold 100 s hold time for valid data. (refer to figure 28.) sdio serial write-write time t sww 100 s time between two write commands. (refer to figure 31.) sdio serial write-read time t swr 100 s time between write and read operation. (refer to figure 32.) sdio serial read-write time t srw 120 ns time between read and write operation. (refer to figure 33.) sdio serial read-read time t srr 120 ns time between two read commands. (refer to figure 33.) data delay after pd t compute 3.2 ms after t compute , all registers contain data from first image after pd . note that an addi- tional 75 frames for agc (shutter) stabilization may be required if mouse movement occurred while pd was high. (refer to figure 12.) sdio write setup time t setup 60 ns data valid time before the rising of sclk. (refer to figure 26.) pd pulse width t pdw 700 s pulse width to initiate the power (to power down the chip) down cycle @ 1500 fps. (refer to figure 12 and figure 14.) pd pulse width t pdr 100 s pulse width to reset the serial (to reset the serial port) port @ 1500 fps (but may also initiate a power down cycle. normal pd recovery sequence to be followed. (refer to figure 15.) frame rate fr 1500 frames/s see frame_period register section. bin resistor r1 15 k 15 k 37 k ? refer to figure 8.
10 figure 10. distance from lens reference plane to surface. z object surface ADNS-2051 hdns-2100 ac electrical specifications electrical characteristics over recommended operating conditions. typical values at 25?c, v dd = 5.0 v, 1500 fps, 18 mhz. parameter symbol min. typ. max. units notes power down t pd 700 s from pd time uncertainty due to firm- ware delay. (refer to figure 12.) power up from pd t pupd 50 ms from pd to valid quad signals 705 sec + 75 frames. (refer to figure 12.) power up from v dd t pu 30 ms from v dd to valid quad signals 705 sec + 40 frames rise and fall times: sdio t r 30 ns c l = 30 pf (the rise time is between 10% and 90%) t f 16 ns c l = 30 pf (the fall time is between 10% and 90%) xa, xb, ya, yb t r 50 ns c l = 30 pf (the rise time is between 10% and 90%) t f 20 ns c l = 30 pf (the fall time is between 10% and 90%) iled t r 40 ns with hlmp-ed80-xxxxx led (the rise time is between 10% and 90%) t f 200 ns with hlmp-ed80-xxxxx led (the fall time is between 10% and 90%) serial port transaction timer t sptt 0.7 0.9 1.0 s serial port will reset if current transaction is not complete within t sptt . (refer to figure 36.) transient supply current i ddt 20 37 ma max. supply current during a v dd ramp from 0 to 5.0 v with > 500 s rise time. does not include charging current for bypass capacitors.
11 dc electrical specifications electrical characteristics over recommended operating conditions. typical values at 25?c, v dd = 5.0 v, 18 mhz. parameter symbol min. typ. max. units notes dc supply current i dd avg 15 25 ma no load on xa, xb, ya, yb, (mouse moving) sclk, sdio. excluding led current. peak supply current i dd peak 20 ma no load on xa, xb, ya, yb, (mouse moving) sclk, sdio. excluding led current. dc supply current i dd 12 25 ma no load on xa, xb, ya, yb, (mouse not moving) sclk, sdio. excluding led current. dc supply current i ddpd 170 240 a pd = high; sclk, sdio = gnd (power down) or v dd ; v dd = 4.25 v to 5.25 v. sclk, sdio, pd input low voltage v il 0.8 v input high voltage v ih 0.5 * v dd v output low voltage v ol 0.7 v @ i ol = 2 ma (sdio only) output high voltage v oh 0.6 * v dd v@ i oh = 2 ma (sdio only) output low voltage v ol 0.4 v @ i ol = 0.5 ma. (xa, xb, ya, yb) output high voltage v oh 0.6 * v dd v@ i oh = 0.5 ma . (xa, xb, ya, yb) output low voltage v ol 1.1 v refer to figure 11. (xy_led) xy led current i led typ?5% 630/r1 typ + 15% a refer to figure 11, see table below. xy led current i led 500 a r1 < 200 ?. (fault mode) ref_a (normal mode) v refa 3.3 v 1.5 k ? to 3.0 v or gnd, pd = low. ref_a (power down mode) v refa 3.3 v 1.5 k ? to 3.0 v or gnd, pd = high. figure 11. typical i-v characteristic of ADNS-2051 xy_led pin. typical led current table r1 value k ? 15 18 22 27 33 37 led current (typical) ma 42 35 29 23 19 17 100 60 0 0 0.5 1.5 2.5 3.5 v ol (v) normalized i led % 40 1.0 2.0 80 20 r = 15 k r = 30 k 3.0
12 t compute new acquisition initialization reset count oscillator start led current sclk 705 s 250 s 455 s 2410 s pd optional spi transactions with old image data spi transactions with new image data at default frame rate pd pin timing figure 12. pd timing normal mode. figure 13. pd timing sleep mode. figure 14. pd minimum pulse width. figure 15. detail of pd falling edge timing. quadrature mode timing the output waveforms emulate the output from encoders. with the resolution set to 400 cpi, from one to five quadrature states can exist within one frame time. the minimum state time is 133 s. if the resolution is 800 cpi, then up to ten quadra- ture states can exist within a frame time. if the motion within a frame is greater than these values, the extra motion will be reported in the next frame. the following diagrams (see figures 16, 17, and 18) show the timing for positive x motion, to the right or positive y motion, up. if a power down via the pd pin oc- curs during a transfer, the trans- fer will resume after pd is de-asserted. the timing for that quadrature state will be increased by the length of the pd time. pd i led t compute sclk register read operation pd i dd t pd 75 frames 705 s t pupd t compute (see figure 15) 700 s t pdw pd (power down)
13 figure 16. quadrature states per frame (400 cpi mode). ~ 667s @ 1500 frames/second 133 s 133 s 133 s 133 s 133 s 133 s 133 s 133 s 133 s 133 s 267 s 400 s 133 s 533 s 667 s one frame five or more four three two one xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb x motion to the right y motion up
14 figure 17. quadrature states per frame (800 cpi mode). x motion to the right y motion up ~ 667s @ 1500 frames/second 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 333 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 266 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 200 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 133 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s one frame ten or more nine eight seven six xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb
15 figure 18. quadrature states per frame (800 cpi mode). ~ 667s @ 1500 frames/second 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 66.7 s 476 s 400 s one frame five four three two one xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb xa/ya xb/yb x motion to the right y motion up 66.7 s 66.7 s 66.7 s
16 quadrature state machine the following state machine shows the states of the quadra- ture pins. the two things to note are that while the pd pin is as- serted, the state machine is halted. once pd is de-asserted, the state machine picks up from where it left off. state 0 is en- tered after a power up reset. quadrature output waveform the two channel quadrature out- puts are 5.0 volt cmos outputs. the ? x count is used to generate the xa and xb signals, and ? y count is used for the ya and yb signals. figure 19. quadrature state machine. figure 20. quadrature output waveform. state 2 state 3 pd pd pd pd +1 -1 +1 -1 +1 -1 x and y output state a b 0 0 0 1 01 2 3 1 1 1 0 state 0 state 1 +1 -1 xa xb xa xb -1 -1 -1 -1 +1 +1 +1 +1 left motion (-direction) motion count right motion (+ direction) motion count ya yb ya yb -1 +1 +1 +1 +1 -1 -1 -1 down motion (- direction) motion count up motion (+ direction) motion count
17 the following graphs (figures 21, 22, 23, and 24) are the typical performance of the ADNS-2051 sensor, assembled as shown in the 2d assembly drawing with the hdns-2100 lens/prism, the hdns-2200 clip, and the hlmp-ed80-xxxxx led (page 3, figure 4). note: 1. the ADNS-2051 is designed for optimal performance when used with the hlmp-ed80-xxxxx (red led 639 nm). for use with other led colors (i.e., blue, green), please consult factory. when using alternate leds, there may also be performance degradation and additional eye safety con- siderations. 2. z = distance from lens reference plane to surface. 3. dof = depth of field. figure 21. typical resolution vs. z (compara- tive surfaces). [2,3] figure 22. wavelength responsitivity. [1] figure 23. typical resolution vs. z (manila folder and led variation). [2,3] figure 24. typical resolution vs. z (black copy and led variation). [2,3] typical performance characteristics performance characteristics over recommended operating conditions. typical values at 25 c, v dd = 5.0 v, 18 mhz. parameter symbol min. typ. max. units notes path error (deviation) p error 0.5 % path error (deviation) is the error from the ideal cursor path. it is expressed as a percentage of total travel and is measured over standard surfaces. 500 200 height mm (2.4 = nominal focus) counts per inch 150 300 50 manila folder burl formica 0 100 250 350 400 white paper operating region 450 -50 dark walnut black copy typical resolution vs. height recommended 1.3 1.5 1.9 2.3 3.5 1.7 2.1 2.7 2.9 3.1 3.3 2.5 dof dof z 450 200 1.3 1.5 1.9 2.3 3.5 height mm (2.4 = nominal focus) counts per inch 150 1.7 2.1 300 50 75% 50% 2.7 2.9 3.1 3.3 0 100 250 350 400 100% typical resolution vs. height at different led current levels [brightness] (manila folder) dof dof z 2.5 recommended operating region dof 450 200 -50 height mm (2.4 = nominal focus) counts per inch 150 300 50 75% 50% 0 100 250 350 400 100% typical resolution vs. height at different led current levels [brightness] (black copy) dof z recommended operating region 1.3 1.5 1.9 2.3 3.5 1.7 2.1 2.7 2.9 3.1 3.3 2.5 relative responsivity 400 0 wavelength (nm) 900 1.0 0.4 0.5 0.6 0.7 0.8 0.9 0.3 700 800 1000 0.1 0.2 600 500
18 synchronous serial port the synchronous serial port is used to set and read parameters in the ADNS-2051, and can be used to read out the motion infor- mation instead of the quadrature data pins. the port is a two wire, half duplex port. the host micro-controller always initiates communication; the ADNS-2051 never initiates data transfers. sclk: the serial port clock. it is always generated by the master (the micro- controller). sdio: the data line. pd: a third line is sometimes involved. pd (power down) is usually used to place the ADNS-2051 in a low power mode to meet usb suspend speci- fication. pd can also be used to force re-synchro- nization between the micro-controller and the ADNS-2051 in case of an error. write operation write operations, where data is going from the micro-controller to the ADNS-2051, is always initi- ated by the micro-controller and consists of two bytes. the first byte contains the address (seven bits) and has a ??as its msb to indicate data direction. the sec- ond byte contains the data. the transfer is synchronized by sclk. the micro-controller changes sdio on falling edges of sclk. the ADNS-2051 reads sdio on rising edges of sclk. figure 25. write operation. figure 26. sdio setup and hold times sclk pulse width. 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 d 0 d 5 d 6 d 7 a 0 a 1 a 2 a 3 a 4 a 5 a 6 d 4 d 3 d 2 d 1 sclk cycle # sclk sdio don't care sdio driven by micro-controller 120 ns 120 ns 120 ns, min. t setup = 60 ns, min. sclk sdio
19 read operation a read operation, which means that data is going from the ADNS-2051 to the micro- controller, is always initiated by the micro-controller and consists of two bytes. the first byte contains the address, is written by the micro-controller, and has a ??as its msb to indicate data direction. the second byte con- tains the data and is driven by the ADNS-2051. the transfer is syn- chronized by sclk. sdio is changed on falling edges of sclk and read on every rising edge of sclk. the micro-controller must go to a high z state after the last address data bit. the ADNS-2051 will go to the high z state after the last data bit (see detail ? in figure 28). one other thing to note during a read operation is that sclk will need to be delayed after the last address data bit to ensure that the ADNS-2051 has at least 100 s to prepare the requested data. this is shown in the timing diagrams below. figure 27. read operation. figure 28. microcontroller to ADNS-2051 sdio handoff. figure 29. ADNS-2051 to microcontroller sdio handoff. note: the 120 ns high state of sclk is the minimum data hold time of the ADNS-2051. since the falling edge of sclk is actually the start of the next read or write command, the ADNS-2051 will hold the state of d 0 on the sdio line until the falling edge of sclk. in both write and read operations, sclk is driven by the micro-controller. serial port communications is not allowed while pd (power down) is high. see error detection and recovery ?regarding re-synchronizing via pd. d 7 d 6 a 0 a 1 detail "a" microcontroller to ADNS-2051 sdio handoff sdio sclk 60 ns, min. t hold 100 s, min. 120 ns, min. 0 ns, min. 120 ns, max. 0 ns, min. 120 ns, max. hi-z d 0 10 ns, max. 120 ns, min. r/w bit of next address sclk sdio detail "b" ADNS-2051 to microcontroller sdio handoff driven by micro released by 2051 1 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 d 0 d 5 d 6 d 7 a 0 a 1 a 2 a 3 a 4 a 5 a 6 d 4 d 3 d 2 d 1 sclk cycle # sclk sdio sdio driven by micro-controller sdio driven by ADNS-2051 detail "a" detail "b"
20 forcing the sdio line to the hi-z state there are times when the sdio line from the ADNS-2051 should be in the hi-z state. if the micro- processor has completed a write to the ADNS-2051, the sdio line is hi-z, since the sdio pin is still configured as an input. however, if the last operation from the microprocessor was a read, the ADNS-2051 will hold the d0 state on sdio until a falling edge of sclk. to place the sdio pin into the hi-z state, raise the pd pin for 100 s (min). the pd pin can stay high, with the ADNS-2051 in the shutdown state, or the pd pin can be lowered, returning the ADNS-2051 to normal operation. the sdio line will now be in the hi-z state. required timing between read and write commands (tsxx) there are minimum timing requirements between read and write commands on the serial port. if the rising edge of the sclk for the last data bit of the second write command occurs before the 100 microsecond required delay, then the first write command may not complete correctly. figure 30. sdio hi-z state and timing. figure 31. timing between two write commands. figure 32. timing between write and read commands. if the rising edge of sclk for the last address bit of the read command occurs before the 100 microsecond required delay, then the write command may not complete correctly. hi-z pd sdio 100 s sclk t sww >100 s write operation address data write operation address data sclk t swr >100 s write operation address data next read operation address
21 the falling edge of sclk for the first address bit of either the read or write command must be at least 120 ns after the last sclk rising edge of the last data bit of the previous read operation. figure 33. timing between read and either write or subsequent read commands. figure 34. timing between sclk and pd rising edge. >1 s data sclk pd sclk t hold >100 s read operation address next read or write operation address t srw , t srr >120 ns data
22 error detection and recovery 1. the ADNS-2051 and the micro-controller might get out of synchronization due to esd events, power supply droops or micro-controller firmware flaws. in such a case, the micro-controller should raise pd for 100 s. the ADNS-2051 will reset the serial port but will not reset the registers and be prepared for the beginning of a new transmission. 2. the ADNS-2051 has a transac- tion timer for the serial port. if the sixteenth sclk rising edge is spaced more than approximately 0.9 seconds from the first sclk edge of the current transaction, the serial port will reset. 3. invalid addresses: writing to an invalid address will have no effect. reading from an invalid address will return all zeros. 4. collision detection on sdio the only time that the ADNS-2051 drives the sdio line is during a read operation. to avoid data collisions, the micro- controller should relinquish sdio before the falling edge of sclk after the last address bit. the ADNS-2051 begins to drive sdio after the next rising edge of sclk. the ADNS-2051 relinquishes sdio within 120 ns of the falling sclk edge after the last data bit. the micro- controller can begin driving sdio any time after that. in order to maintain low power consumption in normal operation or when the pd pin is pulled high, the micro-controller should not leave sdio floating until the next transmission (although that will not cause any communication difficulties). 5. in case of synchronization failure, both the ADNS-2051 and the micro-controller may drive sdio. the ADNS-2051 can withstand 30 ma of short circuit current and will with- stand infinite duration short circuit conditions. 6. termination of a transmission by the micro-controller may sometimes be required (for example, due to a usb sus- pend interrupt during a read operation). to accomplish this the micro-controller should raise pd. the ADNS-2051 will not write to any register and will reset the serial port (but nothing else) and be prepared for the beginning of future transmissions after pd goes low. 7. the micro-controller can verify success of write operations by issuing a read command to the same address and comparing written data to read data. 8. the micro-controller can verify the synchronization of the serial port by periodically reading the product id register. notes on power up and the serial port the sequence in which v dd , pd, sclk, and sdio are set during powerup can affect the operation of the serial port. the diagram below shows what can happen shortly after powerup when the microprocessor tries to read data from the serial port. this diagram shows the v dd ris- ing to valid levels, at some point the microcontroller starts its pro- gram, sets the sclk and sdio lines to be outputs, and sets them high. it then waits to ensure that the ADNS-2051 has powered up and is ready to communicate. the microprocessor then tries to read from location 0x00, product_id, figure 35. power up serial port watchdog timer sequence. data = 0x02 sclk sdio address = 0x00 pd v dd problem area
23 and is expecting a value of 0x02. if it receives this value, it then knows that the communication to the ADNS-2051 is operational. the problem occurs if the ADNS-2051 powers up before the microprocessor sets the sclk and sdio lines to be outputs and high. the ADNS-2051 sees the raising of the sclk as a valid rising edge, and clocks in the state of the sdio as the first bit of the address (sets either a read or a write depending upon the state). in the case of sdio low, then a read operation has started. when the microprocessor begins to actually send the address, the ADNS-2051 already has the first bit of an address. when the sev- enth bit is sent by the micro, the ADNS-2051 has a valid address, and drives the sdio line high within 120 ns (see detail ??in figure 27 and figure 28). this results in a bus fight for sdio. since the address is wrong, the data sent back will be incorrect. in the case of sdio high, a write operation is started. the address and data are out of synchroniza- tion, and the wrong data will be written to the wrong address. two solutions there are two different ways to solve the problem, waiting for the serial port watchdog timer to time out, or using the pd line to reset the serial port. 1. serial port watchdog timer timeout figure 36. power up serial port watchdog timer sequence. figure 37. power up serial port pd sync sequence. data = 0x02 sclk sdio address = 0x00 pd v dd > t sptt if the microprocessor waits at least t sptt from v dd valid, it will ensure that the ADNS-2051 has powered up and the watchdog timer has timed out. this assumes that the microprocessor and the ADNS-2051 share the same power supply. if not, then the microprocessor must wait t sptt from ADNS-2051 v dd valid. then when the sclk toggles for the address, the ADNS-2051 will be in sync with the microprocessor. 2. pd sync data = 0x02 sclk sdio address = 0x00 pd v dd 4 ms the pd line can be used to resync the serial port. if the micropro- cessor waits for 4 ms from v dd valid, and then outputs a valid pd pulse (see figure 15), then the serial port will be ready for data. resync note if the microprocessor and the ADNS-2051 get out of sync, then the data either written or read from the registers will be incor- rect. an easy way to solve this is to output a pd pulse to resync the parts after an incorrect read.
24 spi communication code for the cypress cy7c63000 or cy7c63001 (please consult factory for the cy7c63722 or cy7c63723 codes.) note: this programming sequence is not covered in agilent's product warranty. it is only a recommended example when using the mentioned cypress microcontrollers. for the latest updates on cypress microcontrollers, please contact cypress at email: usbapps@cypress.com or call (858) 613-7929 (us). the following code can be used to implement the spi data communications. see the schematic in figure 9. ; notes: ; cy7c63001 20pin package ; ADNS-2051 ; sdio line connected to pin5 (p1.0) ; pd connected to pin 16 (p1.1) ; sclk line connected to pin15 (p1.3) ; i/o port port1_data: equ 01h ; gpio data port 1 port1_interrupt: equ 05h ; interrupt enable for port 1 port1_pullup: equ 09h ; pullup resistor control for port 1 ; ; port bit definitions sdio: equ 01h ; bit 0 pd: equ 02h ; bit 1 sclk: equ 08h ; bit 3 pt1_current: equ 00h ; port1 current setting ; ; gpio isink registers port1_isink: equ 38h port1_isink0: equ 38h port1_isink1: equ 39h port1_isink3: equ 3bh ; ; ; data memory variables spi_addr: equ 40h ; address of spi writes spi_data: equ 41h ; data of spi writes bit_counter: equ 44h ; spi bit counter port1_wrote: equ 45h ; what we wrote last ; ; ; initialize port 1 ; mov a, pt1_current ; select dac setting iowr port1_isink0 ; isink current port 1 bit[0] iowr port1_isink1 ; isink current port 1 bit[1] iowr port1_isink3 ; isink current port 1 bit[3] mov a, 0h ; enable port 1 bit [7:0] pullups iowr port1_pullup mov a, ~(pd|sdio) ; turn on the ADNS-2051 mov [port1_wrote], a mov a, [port1_wrote] iowr port1_data ; pd low, sclk, sdio mov a, 0 iowr port1_interrupt ; disable port 1 interrupts ; there are possible problems with the spi port if the microcontroller starts executing ; instructionsbefore the ADNS-2051 sensor has powered up. see page 18 for details. ; it is assumed that power to the microcontroller is ok if the next instructions can be executed. ; these instructions will reset the spi port of the sensor. resync_sensor: mov a,~(sclk|sdio|pd) ; set the sclk, sdio and pd lines low and [port1_wrote], a mov a, [port1_wrote]
25 iowr port1_data ; if the power to the sensor needs more time ; to stabilize, insert a delay here call delay700us ; wait about 4 milliseconds for the sensor call delay700us ; oscillator to stabilize call delay700us call delay700us call delay700us call delay700us mov a, (sclk|sdio|pd ; set the sclk, sdio and pd lines high or [port1_wrote], a ; this shuts down the oscillator and mov a, [port1_wrote] ; resets the spi port iowr port1_data call delay700us ; wait for the pd to reset the part mov a, ~pd ; set the pd line low to put the sensor and [port1_wrote], a ; back into normal operation mov a, [port1_wrote] iowr port1_data call delay700us ; wait about 4 milliseconds for the sensor call delay700us ; oscillator to stabilize call delay700us call delay700us call delay700us call delay700us ; sensor spi port now in sync ; ; readspi routine ; ; includes delays for long traces or cables between the up and ADNS-2051 ; has correct timing of sclk and sdio ; ; on entry: spi_addr = address of spi register in the ADNS-2051 ; spi_data = undefined ; ; on exit spi_addr = undefined ; spi_data = register contents from ADNS-2051 ; readspi: mov a, 64 ; wait 200us (optional) mov [bit_counter], a ; (about 3us per loop) waitrspi: nop nop nop nop nop nop dec [bit_counter] jnz waitrspi ; read address mov a,~80h and [spi_addr], a ; lower msb of address (read) call writeaddr ; wait 200us (about 3us per loop)(100us minimum required) mov a,64 ; wait for data to be ready mov [bit_counter], a waitrspi2: nop nop nop nop nop nop dec [bit_counter] jnz waitrspi2
26 mov a, 0h ; clear the data mov [spi_data], a mov a, 08h mov [bit_counter], a mov a, sdio or [port1_wrote], a mov a, [port1_wrote] ; write a 1 to sdio iowr port1_data nextr: mov a, ~sclk ; lower sclk and [port1_wrote], a mov a, [port1_wrote] iowr port1_data nop ; wait for cable to settle nop ; if ADNS-2051 is connected to nop ; ic via short pcb traces, nop ; then the number of nops can nop ; reduced or eliminated nop nop mov a,[spi_data] ; shift next bit asl mov [spi_data], a ; shift next bit iord port1_data ; read sdio and a, sdio jz rdx rd1: mov a, 01h or [spi_data], a rdx: mov a, sclk ; raise sclk or [port1_wrote], a mov a, [port1_wrote] iowr port1_data nop ; wait for cable to settle nop nop nop nop nop nop dec [bit_counter] jnz nextr ret ; ; writespi routine ; ; includes delays for long traces or cables between the up and ADNS-2051. ; has correct timing of sclk and sdio ; ; on entry: spi_addr = address of spi register in the ADNS-2051 ; spi_data = data to be written to the spi register ; ; on exit spi_addr = undefined ; spi_data = undefined ; writespi: mov a, 64 ; wait 200us (optional) mov [bit_counter], a ; about 3us per loop waitspi: nop nop nop nop nop nop dec [bit_counter] jnz waitspi ; write address mov a, 80h
27 or [spi_addr], a ; set msb of address (write) call writeaddr jmp wrdata writeaddr: mov a, 08h ; 8 bits to shift out mov [bit_counter], a nexta: mov a, ~sclk ; lower sclk and [port1_wrote], a mov a, [port1_wrote] iowr port1_data mov a, [spi_addr] ; shift next bit asl mov [spi_addr], a jnc addr0 addr1: mov a, sdio or [port1_wrote], a ; raise sdio jmp addrx addr0: mov a, ~sdio and [port1_wrote], a ; lower sdio addrx: mov a, [port1_wrote] iowr port1_data nop ; wait for cable to settle nop nop nop nop nop nop mov a, sclk ; raise sclk or [port1_wrote], a mov a, [port1_wrote] iowr port1_data ; ADNS-2051 reads the address bit nop ; wait for cable to settle nop nop nop nop nop nop dec [bit_counter] jnz nexta ret wrdata: mov a, 08h ; 8 bits of data mov [bit_counter], a nextw: mov a, ~sclk ; lower sclk and [port1_wrote], a mov a, [port1_wrote] iowr port1_data mov a, [spi_data] ; shift next bit asl mov [spi_data], a jnc wr0 wr1: mov a, sdio or [port1_wrote], a ; raise sdio jmp wrx wr0: mov a, ~sdio and [port1_wrote], a ; lower sdio wrx: mov a, [port1_wrote] iowr port1_data nop ; wait for cable to settle nop nop nop nop nop nop mov a, sclk ; raise sclk
28 or [port1_wrote], a mov a, [port1_wrote] iowr port1_data ; ADNS-2051 reads the data bit nop ; wait for cable to settle nop nop nop nop nop nop dec [bit_counter] jnz nextw ret delay700us: mov a, ffh ; wait for 710us mov [bit_counter], a ; reuse bit_counter waitd0: nop nop nop nop nop nop ; 2us dec [bit_counter] jnz waitd0 ret example calling syntax ; ; writespi ; ; set register 0a to 40h, led blink mode mov a, 0ah ; move address into a mov [spi_addr], a ; move address into spi_addr mov a, 40h ; move data into a mov [spi_data], a ; move data into spi_data call writespi ; call writespi routine, on return, ; spi_addr and spi_data will be undefined ; ; readspi ; ; read register 02h, the motion register mov a, 02h ; move address into a mov [spi_addr], a ; move address into spi_addr call readspi ; call readspi, on return, data is in spi_data, ; spi_addr is undefined
29 registers the ADNS-2051 can be programmed through registers, via the serial port, and configuration and motion data can be read from these registers. address register 0x00 product_id 0x01 revision_id 0x02 motion 0x03 delta_x 0x04 delta_y 0x05 squal address register 0x06 average_pixel 0x07 maximum_pixel 0x08 reserved 0x09 reserved 0x0a configuration_bits 0x0b reserved address register 0x0c data_out_lower 0x0d data_out_upper 0x0e shutter_lower 0x0f shutter_upper 0x10 frame_period_lower 0x11 frame_period_upper bit76543210 field pid 7 pid 6 pid 5 pid 4 pid 3 pid 2 pid 1 pid 0 data type: eight bit number with the product identifier. usage: the value in this register does not change, it can be used to verify that the serial communications link is ok. product_id address: 0x00 access: read reset value: 0x02 bit765 43210 field rid 7 rid 6 rid 5 rid 4 rid 3 rid 2 rid 1 rid 0 data type: eight bit number with current revision of the ic. usage: nn is a value between 00 and ff which represent the current design revision of the device. revision_id address: 0x01 access: read reset value: 0xnn bit 7 6 5 4 3 2 1 0 field mot reserved fault ovfy ovfx reserved reserved res data type: bit field usage: register 0x02 allows the user to determine if motion has occurred since the last time it was read. if so, then the user should read registers 0x03 and 0x04 to get the accumulated motion. it also tells if the motion buffers have overflowed and whether or not an led fault occurred since the last reading. the current resolution is also shown. motion address: 0x02 access: read reset value: 0x00
30 field name description mot motion since last report or pd 0 = no motion 1 = motion occurred, data ready for reading in delta_x and delta_y registers reserved reserved for future fault led fault detected ?set when r_bin is too low or too high, shorts to v dd or ground 0 = no fault 1 = fault detected ovfy motion overflow y, ? y buffer has overflowed since last report 0 = no overflow 1 = overflow has occurred ovfx motion overflow x, ? x buffer has overflowed since last report 0 = no overflow 1 = overflow has occurred reserved reserved for future reserved reserved for future res resolution in counts per inch 0 = 400 1 = 800 notes for motion: 1. reading this register freezes the delta_x and delta_y register values. read this register before reading the delta_x and del ta_y registers. if delta_x and delta_y are not read before the motion register is read a second time, the data in delta_x and delta_y will be lost . 2. agilent recommends that registers 0x02, 0x03 and 0x04 be read sequentially. 3. internal buffers can accumulate more than eight bits of motion for x or y. if either one of the internal buffers overflows, then absolute path data is lost, and the ovfx or ovfy bit is set. these bits (ovfx and ovfy) are cleared once some motion has been read from the delta _x and delta_y registers, and if the buffers are not at full scale. since more data is present in the buffers, the cycle of reading the motio n, delta_x and delta_y registers should be repeated until the motion bit (mot) is cleared. until mot is cleared, either the delta_x or delta_y regist ers will read either positive or negative full scale. if the motion register has not been read for a long time, at 400 cpi it may take up to 16 rea d cycles to clear the buffers, at 800 cpi, up to 32 cycles. 4. fault is a sticky bit that is cleared by reading the motion register. it signifies that an led fault has occurred since the last time the motion register was read. once an led fault has cleared, the hardware will drive the led normally. 80 81 fe ff 00 01 02 7e 7f -128 -127 -2 -1 0 +1 +2 +126 +127 motion delta_x bit76543210 field x 7 x 6 x 5 x 4 x 3 x 2 x 1 x 0 data type: eight bit 2? complement number. usage: x movement is counts since last report. absolute value is determined by resolution. reading clears the register. delta_x address: 0x03 access: read reset value: 0x00
31 the focus point is important and could affect the squal value, the graph below showing another setup with various z-height. the graph clearly shows that the squal count is dependent on focus distance. note: this graph is obtained by getting multiple readings over different heights. figure 38. typical mean squal vs. z (white paper). 80 81 fe ff 00 01 02 7e 7f -128 -127 -2 -1 0 +1 +2 +126 +127 motion delta_y bit76543210 field y 7 y 6 y 5 y 4 y 3 y 2 y 1 y 0 data type: eight bit 2? complement number. usage: y movement is counts since last report. absolute value is determined by resolution. reading clears the register. delta_y address: 0x04 access: read reset value: 0x00 0 25 50 75 100 125 150 175 200 225 250 256 192 128 64 0 squal value squal values (white paper) 1.4 0.6 -1.0 -0.8 -0.3 0 1.0 delta from nominal focus (mm) normalized squal counts -0.5 0.2 x x 3 0.25 0.5 0.75 0 0.4 0.8 1.0 1.2 x+ 3 bit76543210 field sq 7 sq 6 sq 5 sq 4 sq 3 sq 2 sq 1 sq 0 data type: eight bit number. usage: squal is a measure of the number of features visible by the sensor in the current frame. the maximum value is 255. since small changes in the current frame can result in changes in squal, variations in squal when looking at a surface are expected. the graph below shows 250 sequentially acquired squal values, while a sensor was moved slowly over white paper. squal is nearly equal to zero, if there is no surface below the sensor. surface_quality address: 0x05 access: read reset value: 0x00
32 reserved address: 0x08 reserved address: 0x09 0 25 50 75 100 125 150 175 200 225 250 64 48 32 16 0 average pixel value average pixel (white paper) 0 25 50 75 100 125 150 175 200 225 250 64 48 32 16 0 maximum pixel value maximum pixel (white paper) bit76543210 field 0 0 ap 5 ap 4 ap 3 ap 2 ap 1 ap 0 data type: six bit number. usage: average pixel value in current frame. minimum value = 0, maximum = 63. the average pixel value can be adjusted every frame. shown below is a graph of 250 sequentially acquired average pixel values, while the sensor was moved slowly over white paper. average_pixel address: 0x06 access: read reset value: 0x00 bit76543210 field 0 0 mp 5 mp 4 mp 3 mp 2 mp 1 mp 0 data type: six bit number. usage: maximum pixel value in current frame. minimum value = 0, maximum value = 63. the maximum pixel value can be adjusted every frame. shown below is a graph of 250 sequentially acquired maximum pixel values, while the sensor was moved slowly over white paper. maximum_pixel address: 0x07 access: read reset value: 0x00
33 field name description reset power up defaults (bit always reads 0) 0 = no effect 1 = reset registers and bits to power up default settings (bold entries) led_mode led shutter mode 0 = shutter mode off (led always on) (even if no motion up to 1 sec.) 1 = shutter mode on (led only on when the electronic shutter is open) sys test system tests (bit always reads 0) 0 = no tests 1 = perform all system tests, output 16 bit crc via data_out_upper and data_out_lower registers. note: since part of the system test is a ram test, the ram will be overwritten with the default values when the test is done. if any configuration changes from the default are needed for operation, make the changes after the system test is run. this operation requires substantially more time to complete than other register transactions. res resolution in counts per inch 0 = 400 1 = 800 pix dump dump the pixel array through data_out_upper and data_out_lower, 256 bytes 0 = disabled 1 = dump pixel array reserved reserved reserved reserved sleep sleep mode 0 = normal, fall asleep after one second of no movement (1500 frames/s) 1 = always awake reserved address: 0x0b bit 7 6 5 4 3 2 1 0 field reset led_mode sys test res pixdump reserved reserved sleep data type: bit field usage: register 0x0a allows the user to change the configuration of the sensor. shown below are the bits, their default values, and optional values. configuration_bits address: 0x0a access: read/write reset value: 0x00
34 data_out_upper data_out_lower note system test result 1: fe d4 one of two results returned. these system test result 2: 4d 10 values are subject to change with each device design revision. pixel dump command pixel address pixel data (lower 6 bits) once the pixel dump command is given, the sensor writes the address and the value for the first pixel into the data_out_upper and data_out_lower registers. the msb of data_out_lower is the status bit for the data. if the bit is high, the data are not valid. once the msb is low, the data for that particular read are valid and should be saved. the pixel address and data will then be incremented on the next frame. once the pixel dump is complete, the pixdump bit in register 0x0a should be set to zero. to obtain an accurate image, the led needs to be turned on by changing the sleep mode of the configuration register 0x0a to always awake. bit76543210 field do 7 do 6 do 5 do 4 do 3 do 2 do 1 do 0 data_out_lower address: 0x0c access: read reset value: undefined bit76543210 field do 15 do 14 do 13 do 12 do 11 do 10 do 9 do 8 data type: sixteen bit word. usage: data can be written to these registers from the system self test, or the pixel dump command. the data can be read out 0x0d, or 0x0d first, then 0x0c. data_out_upper address: 0x0d access: read reset value: undefined
35 pixel address map (looking through the hdns-2100 lens) figure 39. directions are for a complete mouse, with the hdns-2100 lens. ff ef df cf bf af 9f 8f 7f 6f 5f 4f 3f 2f 1f 0f fe ee de ce be ae 9e 8e 7e 6e 5e 4e 3e 2e 1e 0e fd ed dd cd bd ad 9d 8d 7d 6d 5d 4d 3d 2d 1d 0d fc ec dc cc bc ac 9c 8c 7c 6c 5c 4c 3c 2c 1c 0c fb eb db cb bb ab 9b 8b 7b 6b 5b 4b 3b 2b 1b 0b fa ea da ca ba aa 9a 8a 7a 6a 5a 4a 3a 2a 1a 0a f9 e9 d9 c9 b9 a9 99 89 79 69 59 49 39 29 19 09 f8 e8 d8 c8 b8 a8 98 88 78 68 58 48 38 28 18 08 f7 e7 d7 c7 b7 a7 97 87 77 67 57 47 37 27 17 07 f6 e6 d6 c6 b6 a6 96 86 76 66 56 46 36 26 16 06 f5 e5 d5 c5 b5 a5 95 85 75 65 55 45 35 25 15 05 f4 e4 d4 c4 b4 a4 94 84 74 64 54 44 34 24 14 04 f3 e3 d3 c3 b3 a3 93 83 73 63 53 43 33 23 13 03 f2 e2 d2 c2 b2 a2 92 82 72 62 52 42 32 22 12 02 f1 e1 d1 c1 b1 a1 91 81 71 61 51 41 31 21 11 01 f0 e0 d0 c0 b0 a0 90 80 70 60 50 40 30 20 10 00 last pixel first pixel a2051 yyww 1 8 16 9 lb rb positive x positive y top x-ray view of mouse
36 pixel dump pictures the following images (figure 40) are the output of the pixel dump command. the data ranges from zero for complete black, to 63 for complete white. an internal agc circuit adjusts the shutter value to keep the brightest feature (max. pixel) in the mid 50s. (a) white paper (b) manila folder (c) neoprene mouse pad (gray) (d) usaf test chart group 3, element 1 8 line pairs per mm figure 40. pixel dump pictures.
37 the focus point is important and could affect the shutter value. the graph below shows another setup with various z-height. this graph clearly shows that the shutter value is dependent on focus distance. 0 25 50 75 100 125 150 175 200 225 250 800 600 400 200 0 shutter value shutter values (white paper) (clock cycles) bit76543210 field s 7 s 6 s 5 s 4 s 3 s 2 s 1 s 0 shutter_lower address: 0x0e access: read reset value: 0x64 bit76543210 field s 15 s 14 s 13 s 12 s 11 s 10 s 9 s 8 data type: sixteen bit word. usage: units are clock cycles; default value is 64. read shutter_upper first, then shutter_lower. they should be read consecutively. the shutter is adjusted to keep the average and maximum pixel values within normal operating ranges. the shutter value can be adjusted to a new value on every frame. when the shutter adjusts, it changes by 1/16 of the current value. shown below is a graph of 250 sequentially acquired shutter values, while the sensor was moved slowly over white paper. shutter_upper address: 0x0f access: read reset value: 0x00 note: this graph shows average readings over different heights. figure 41. typical shutter vs. z (white paper). 3.5 1.5 -1.0 -0.8 -0.3 0 1.0 distance from nominal focus (mm) normalized shutter value (counts) -0.5 0.5 0.25 0.5 0.75 0 1.0 2.0 2.5 3.0 x x 3 x+ 3 typical shutter vs. z (white paper)
38 default max. shutter max shutter shutter frames/second d ecimal hex upper lower 2300 5010 0x1392 13 92 2000 6184 0x1828 18 28 1500 9184 0x23e0 23 e0 1000 15184 0x3b50 3b 50 500 33184 0x81a0 81 a0 *note: to optimize tracking performance on dark surfaces, it is recommended that an adaptive frame rate based on shutter value be implemented, for frame rates greater than 1500. changing the frame rate results in changes in the maximum speed, acceleration limits, and dark surface performance. to read from the registers, read frame_period_upper first followed by frame_period_lower. to write to the registers, write frame_period_lower first followed by frame_period_upper. the maximum value of the shutter is dependent upon the frame rate and clock frequency. the formula for the maximum shutter value is: clock frequency frame rate max. shutter value = ?816 for a clock frequency of 18 mhz, the following table shows the maxi- mum shutter value. 1 clock cycle is 55.56 nsec. default frame time counts frame_period frames/second d ecimal hex 2 s comp upper lower 2300* 7826 0x1e92 0xe16e e1 6e 2000* 9000 0x2328 0xdcd8 dc d8 1500 12000 0x2ee0 0xd120 d1 20 1000 18000 0x4650 0xb9b0 b9 b0 500 36000 0x8ca0 0x7360 73 60 minimum frame time bit76543210 field fp 7 fp 6 fp 5 fp 4 fp 3 fp 2 fp 1 fp 0 frame_period_lower address: 0x10 access: read/write reset value: 0x20 bit76543210 field fp 15 fp 14 fp 13 fp 12 fp 11 fp 10 fp 9 fp 8 data type: sixteen bit 2? complement word. usage: the frame period counter counts up until it overflows. units are clock cycles. the formula is: = counts (decimal) counts (hex) counts (2? complement hex) for an 18 mhz clock, here are the frame_period values for popular frame rates. frame_period_upper address: 0x11 access: read/write reset value: 0xd1 clock rate frame rate
39 ic register state after reset (power up or setting bit 7, register 0x0a) address register v alue meaning 0x0 product_id 0x02 product id = 2 (fixed value) 0x01 revision_id 0xnn revision of ic (fixed value). (for each device design revision.) 0x02 motion 0x00 no motion led = no fault no x data overflow no y data overflow resolution is 400 counts per inch 0x03 delta_x 0x00 no x motion 0x04 de lta_y 0x00 no y motion 0x05 squal 0x00 no image yet to measure 0x06 average_pixel 0x00 no image yet to measure 0x07 maximum_pixel 0x00 no image yet to measure 0x08 reserved 0x09 reserved 0x0a configuration_bits 0x00 part is not reset led shutter mode is off no system tests resolution = 400 counts per inch pixel dump is disabled sleep mode is enabled 0x0b reserved 0x0c data_out_lower undefined no data to read 0x0d data_out_upper undefined no data to read 0x0e shutter_lower 0x64 initial shutter value 0x0f shutter_upper 0x00 initial shutter value 0x10 frame_period_lower 0x20 initial frame period value (corresponds to 1500 fps) 0x11 frame_period_upper 0xd1 initial frame period value (corresponds to 1500 fps)
www.agilent.com/semiconductors for product information and a complete list of distributors, please go to our web site. for technical assistance call: americas/canada: +1 (800) 235-0312 or (916) 788-6763 europe: +49 (0) 6441 92460 china: 10800 650 0017 hong kong: (+65) 6756 2394 india, australia, new zealand: (+65) 6755 1939 japan: (+81 3) 3335-8152 (domestic/interna- tional), or 0120-61-1280 (domestic only) korea: (+65) 6755 1989 singapore, malaysia, vietnam, thailand, philippines, indonesia: (+65) 6755 2044 taiwan: (+65) 6755 1843 data subject to change. copyright ?2004 agilent technologies, inc. obsoletes 5988-4289en october 8, 2004 5988-8477en optical mouse design references application note an1179 eye safety calculation an1228 ordering information specify part number as follows: ADNS-2051 = sensor ic in a 16-pin staggered dip, 20 per tube. adnb-2050 = sensor ic and hdns-2100 round lens bundle kit, 1000 pc incremental adnb-2051 = sensor ic and hdns-2100#001 round lens bundle kit, 1000 pc incremental hdns-2100 = round optical mouse lens hdns-2100#001 = trimmed optical mouse lens hdns-2200 = led assembly clip (black) hdns-2200#001 = led assembly clip (clear) hlmp-ed80-xxxxx = led


▲Up To Search▲   

 
Price & Availability of ADNS-2051

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X